Differenzanalyse und Vereinigung von Modellen auf der Basis ihrer Metamodelle
نویسندگان
چکیده
Die modellgetriebene Softwareentwicklung im Team erfordert entsprechende Technologien zur Analyse von Modelldifferenzen sowie zur Vereinigung verschiedener Modelle. Dieser Artikel stellt die in diesem Kontext von der ikv++ technologies ag entwickelten Konzepte und Lösungen vor. Teamwork und modellgetriebene Softwareentwicklung Modellgetriebene Softwareentwicklungstechnologien vereinfachen und verbessern viele Aspekte der Softwareentwicklung. So können beispielsweise Modelltransformatoren den Output einer Entwicklungsphase automatisiert in den Input der nächsten Phase überführen, und die automatische Erzeugung von Programmcode direkt aus detaillierten Implementierungsmodellen rationalisiert die Programmierarbeit. Dem gegenüber entstehen jedoch neue Probleme und Herausforderungen. So müssen die in der modellgetriebenen Softwareentwicklung verwendeten Werkzeuge unter anderem die Unterstützung paralleler Entwicklung bieten. Die hierfür benötigten Modellvergleiche und Modellvereinigungen sind deutlich komplexer als die traditionellen, auf Programmcode operierenden Verfahren. Die ikv++ technologies ag ist in ihren Aktivitäten auf dem Gebiet der modellbasierten Optimierung und Automatisierung von Systementwicklungsprozessen diesen Herausforderungen durch die Entwicklung einer Technologie zur Versionierung von Modellelementen, zur Analyse von Unterschieden zwischen Modellen und zum automatisierten Zusammenführen von unterschiedlichen Modellen früh begegnet. Diese Technologie basiert auf der Definition einer Modellierungssprache, dem sog. Metamodell. So können beispielsweise UMLModelle miteinander auf der Basis des UML-Metamodells und kundenspezifische Modelle auf der Basis des kundenspezifischen Metamodells verglichen und zusammengeführt werden. Diese Technologie wird bereits zur Unterstützung von Teamarbeit, zum automatisierten Zusammenführen von Modellen nach Modelltransformationen sowie für das Importieren von Modellteilen in andere Modelle praktisch in Kundenprojekten eingesetzt. Im Folgenden werden die benötigten Vorraussetzungen sowie die Funktionen des von der ikv++ technologies ag entwickelte Ansatzes am Beispiel eines exemplarischen Werkzeugs zur Differenzanalyse und zur Vereinigung von Modellen erläutert. Die hier beschriebene Technologie ist Teil der medini Basistechnologie der ikv. Grundlagen und Prozesse Der Prozess des Zusammenführens zweier verschiedener Modellversionen kann in drei grundsätzliche Schritte unterteilt werden: Zuerst müssen die Unterschiede zwischen den beiden beteiligten Modellen festgestellt werden, einschließlich eventueller Konflikte. Dafür müssen die Modelle aus dem Dateisystem oder einer eventuell vorhandenen Versionsverwaltung importiert werden. Im Anschluss daran ist ein Zielmodell zu erzeugen, welches alle benötigten Elemente der Ursprungsmodelle enthält und dabei die aufgetretenen Konflikte bestmöglich löst. Dieses Zielmodell wird im letzten Schritt wieder im Dateisystem 1 Unter http://www.ikv.de/index.php?option=com_content&task=view&id=4 9&Itemid=74&limit=1&limitstart=1 sind zwei Demonstrationsvideos verfügbar, welche die hier beschriebene Technologie zum Modellvergleich und zum Zusammenführen von Modellen am Beispiel von medini component modeler näher bringen. bzw. der Versionsverwaltung abgelegt, von wo aus es weiterbearbeitet werden kann. Die entsprechende ikv Technologie basiert zum einen auf der Definition von Modelldifferenzen im Kontext von Metamodellen, zum anderen auf einigen Grundvoraussetzungen. Definition von Modelldifferenzen Im gegebenen Kontext gelten folgende (vereinfachte) Definitionen: Die kleinsten als Differenz zu betrachtenden Einheiten sind die Eigenschaften der Objekte (Attributwerte und Referenzen auf andere Objekte, wie im MOF Standard beschrieben). Ein Metaobjekt (Element des Metamodells) kann sog. Referenzen definieren. Zwei solche Referenzen sind unterschiedlich, wenn sie unterschiedliche Objekte referenzieren und/oder unterschiedliche Vielfachheiten besitzen, und/oder wenn im Falle von Listen die Elemente anderes geordnet sind. Zwei Modellelemente sind unterschiedlich, wenn ihre Eigenschaften (Attribute/Referenzen) unterschiedlich sind, oder wenn ihre eindeutige Identifikation (im Falle von medini base Technologie eine eindeutige UUID) unterschiedlich ist. Basierend auf diesem intuitiv verständlichen Differenzkonzept kann medini Modellunterschiede erkennen und auswerten. Grundvoraussetzungen Modellelemente werden auf Basis ihrer UUID verglichen. Daher gehen wir davon aus, dass zunächst eine initiale Version des Modells erzeugt und diese dann an die beteiligten Modellierer weitergegeben wird. Somit können Änderungen erkannt und bei der Differenzanalyse korrekt ausgewertet werden. Weiterhin werden alle am Prozess beteiligten Modelle in einem versionierten medini Repository abgelegt. Dieses Repository unterstützt zum einen die Teamarbeit in verschiedenen Entwicklungszweigen, zum anderen bietet es die entsprechenden Schnittstellen, um Modelle auszulesen und deren Elemente zu traversieren. 2 Siehe „Meta Object Facility Specification Version 1.4“ (Document ptc/02-04-03) unter http://www.omg.org/docs Eine große Rolle beim Ablauf des Vergleichsalgorithmus spielt auch das Wissen um das den Modellen zugrundeliegende Metamodell, beispielsweise zur Auswertung der Hierarchie der Modellelemente. Modellvergleich und Modellvereinigung mit medini Auf Grundlage der gegebenen Definitionen und Grundvoraussetzungen kann man nun mit Hilfe von medini den oben genannten dreistufigen Modellvergleichsund Modellvereinigungsprozess durchführen. Das Werkzeug unterstützt dabei durch folgende Funktionen: Laden der beiden ausgewählten Modellversionen aus einem medini Repository und Umsetzung in eine interne Repräsentation Berechnung der Differenzen auf Basis der Differenzdefinition, Anzeige der vollständigen Modelle in einer Baumstruktur sowie Hervorhebung aller Differenzen Navigation der Modelle und Differenzen in beiden Modellversionen auf Basis der internen Repräsentation Funktionen zum Kopieren und Löschen von Modellelementen innerhalb der grafischen Oberfläche sowie Funktionen zur Markierung der im Folgenden zu vereinigenden Elemente Vereinigung der Modelle in einem Zielmodell und Speicherung im Versions-Repository Das unter www.ikv.de erhältliche ausführlichere White Paper beschreibt diese Funktionen im Detail.
منابع مشابه
Pseudo-Modelldifferenzen und die Phasenabhängigkeit von Metamodellen
Beim Vergleichen von Dokumenten werden manchmal Unterschiede angezeigt, die man als inhaltlich belanglos ansieht; solche Differenzen werden als Pseudodifferenzen bezeichnet. Wir betrachten dieses Phänomen für den speziellen Fall des Vergleichs von Modellen, deren Struktur durch ein Metamodell definiert wird, wie z.B. in der UML. Einen großen Teil der Pseudodifferenzen kann man darauf zurückführ...
متن کاملImplementierung von IR-Modellen auf Basis spaltenorientierter Datenbanken oder invertierter Listen
Im Information Retrieval (IR) wird die Anwendung spaltenorientierter Datenbankmanagementsysteme (DBMS) diskutiert, um u.a. durch die Trennung von Datenhaltung und Suchlogik zusätzliche Flexibilität zu gewinnen. Es stellt sich die Frage, ob sich solche Systeme für den praktischen Einsatz eignen, oder ob deren Einsatz auf das Prototyping beschränkt ist. Ziel dieser Arbeit ist es daher, IR-Systeme...
متن کاملBerechnung und Propagation von Modelländerungen auf der Basis von Editieroperationen
Modellbasierte Softwareentwicklung hat sich in verschiedensten Applikationsdomänen fest etabliert. Größtenteils visuelle Modelle wie bspw. diverse Varianten verschiedener Modelltypen der UML werden hierbei zum integralen Bestandteil aller Phasen modellbasierter Entwicklungsprozesse. Modelle unterliegen somit kontinuierlichen Änderungen und existieren im Laufe ihrer Evolution in zahlreichen Vers...
متن کاملRECAA - Werkzeugunterstützung in der Anforderungserhebung
Die Anforderungserhebung (Requirements Engineering) ist der erste und wesentliche Teil der Softwareentwicklung. Bis heute besteht die Anforderungserhebung hauptsächlich aus manuellen Prozessen. Diese Prozesse sind fehleranfällig und die Qualität ihrer Ergebnisse hängt stark von den Fähigkeiten des Anforderungsanalysten (Requirements Engineer) ab. Somit ist die Anforderungserhebung ein früher An...
متن کاملModellbasierte Softwareintegration: Fordern Sie Teamarbeit auch von Ihrer Software
Bei der Einführung neuer Technologien, neuer Softwaresysteme und Geschäftsprozesse, oder beim ,,Zusammenwachsen zweier Unternehmen” (Kauf/Übernahme/Business-to-Business) entstehen für gewöhnlich Medienund Systembrüche. Die dadurch notwendige Softwaresystem-Integration ist jedoch auf Basis der heute verfügbaren Produkte für viele Unternehmen oft nur mit wenig befriedigendem Kosten-/Nutzenverhält...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Softwaretechnik-Trends
دوره 27 شماره
صفحات -
تاریخ انتشار 2007